package com.ht.modules.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ht.modules.system.entity.SysUserDepart;
import com.ht.modules.system.entity.SysUserVo;
import com.ht.modules.system.model.DepartIdModel;
import com.ht.modules.system.model.SysUserDepartsVO;

import java.util.List;
import java.util.Set;

/**
 * SysUserDpeart用户组织机构service
 */
public interface ISysUserDepartService extends IService<SysUserDepart> {

	/**
	 * 根据指定用户添加部门信息
	 */
	boolean addSysUseWithrDepart(SysUserDepartsVO sysUserDepartsVO);

	/**
	 * 根据指定用户id查询部门信息
	 */
	List<DepartIdModel> queryDepartIdsOfUser(String userId);

	/**
	 * 根据指定用户id编辑部门信息
	 */
	boolean editSysUserWithDepart(SysUserDepartsVO sysUserDepartsVO);

	/**
	 * 根据部门id查询用户信息
	 * @param depId 部门id
     * @param username 用户账号
     * @param realname 真实姓名
	 * @return 用户信息list
	 */
	List<SysUserVo> queryUserByDepId(String depId, String username, String realname);

	/**
	 * 根据部门id查询用户信息Vo
	 * @param depId 部门id
	 * @param username 用户账号
     * @param realname 真实姓名
	 * @return List<SysUserVo>
	 */
	List<SysUserVo> queryUserVoByDepId(String depId, String username, String realname);

    /**
     * 判断用户是否属于生产一部
     * @param userId 用户id
     * @return 是否属于生产一部
     */
	boolean isBelongToProductDept(String userId);

	/**
	 * 获取某部门下（直属）的userId集合
	 */
	Set<String> getUserIdSet(String departId);
}
